YUI.add("cookie",function(n,e){var t=n.Lang,o=n.Object,g=null,S=t.isString,r=t.isObject,k=t.isUndefined,s=t.isFunction,u=encodeURIComponent,b=decodeURIComponent,i=n.config.doc;function a(e){throw new TypeError(e)}function c(e){S(e)&&""!==e||a("Cookie name must be a non-empty string.")}function f(e){S(e)&&""!==e||a("Subcookie name must be a non-empty string.")}n.Cookie={_createCookieString:function(e,t,n,o){o=o||{};var e=u(e)+"="+(n?u(t):t),n=o.expires,t=o.path,i=o.domain;return r(o)&&(n instanceof Date&&(e+="; expires="+n.toUTCString()),S(t)&&""!==t&&(e+="; path="+t),S(i)&&""!==i&&(e+="; domain="+i),!0===o.secure)&&(e+="; secure"),e},_createCookieHashString:function(e){r(e)||a("Cookie._createCookieHashString(): Argument must be an object.");var n=[];return o.each(e,function(e,t){s(e)||k(e)||n.push(u(t)+"="+u(String(e)))}),n.join("&")},_parseCookieHash:function(e){var t,n,o,i=e.split("&"),r={};if(e.length)for(t=0,n=i.length;t{const t=e.Lang,i=[],n=e.config,s=n.doc,r={active:"activated"},a={},o={src:a},g="sessionToast",l=themeDisplay.getPathMain()+"/portal/",c=e.Component.create({ATTRS:{autoExtend:{value:!1},redirectOnExpire:{value:!0},redirectUrl:{value:""},sessionLength:{getter:"_getLengthInMillis",value:0},sessionState:{value:"active"},sessionTimeoutOffset:{getter:"_getLengthInMillis",value:0},timestamp:{getter:"_getTimestamp",setter:"_setTimestamp",value:0},warningLength:{getter:"_getLengthInMillis",setter:"_setWarningLength",value:0},warningTime:{getter:"_getWarningTime",value:0}},EXTENDS:e.Base,NAME:"liferaysession",prototype:{_afterSessionStateChange(e){const t=e.details,i=e.newVal;let n=null;"src"in e&&t.length&&(n=t[0]),this.fire(r[i]||i,n)},_defActivatedFn(e){const t=this;t.set("timestamp"),e.src===a&&Liferay.Util.fetch(l+"extend_session").then((e=>{500===e.status&&t.expire()}))},_defExpiredFn(t){const i=this;e.clearInterval(i._intervalId),t.src===a&&i._expireSession()},_expireSession(){const t=this;Liferay.Util.fetch(l+"expire_session").then((i=>{i.ok?(Liferay.fire("sessionExpired"),t.get("redirectOnExpire")&&(location.href=t.get("redirectUrl"))):e.setTimeout((()=>{t._expireSession()}),1e3)}))},_getLengthInMillis:e=>1e3*e,_getTimestamp(){return Liferay.Util.Cookie.get(this._cookieKey,Liferay.Util.Cookie.TYPES.NECESSARY)||this._initTimestamp},_getWarningTime(){return this.get("sessionLength")-this.get("warningLength")},_initEvents(){const i=this;i.publish("activated",{defaultFn:e.bind("_defActivatedFn",i)}),i.publish("expired",{defaultFn:e.bind("_defExpiredFn",i)}),i.publish("warned"),i._eventHandlers=[i.on("sessionStateChange",i._onSessionStateChange),i.after("sessionStateChange",i._afterSessionStateChange),e.on("io:complete",((e,n,s)=>{(!s||s&&s.sessionExtend||!t.isBoolean(s.sessionExtend))&&i.resetInterval()})),Liferay.once("screenLoad",(()=>{i.destroy()}))]},_onSessionStateChange(e){const t=this,i=e.newVal,n=e.prevVal;"expired"===n&&n!==i?e.preventDefault():"active"===n&&n===i&&t._afterSessionStateChange(e)},_setTimestamp(e){const t=this;e=String(e||Date.now()),t._initTimestamp=e,navigator.cookieEnabled&&Liferay.Util.Cookie.set(t._cookieKey,e,Liferay.Util.Cookie.TYPES.NECESSARY,t._cookieOptions)},_setWarningLength(e){return Math.min(this.get("sessionLength"),e)},_startTimer(){const t=this,i=t.get("sessionLength"),n=t.get("sessionTimeoutOffset"),s=t.get("warningTime");t._intervalId=e.setInterval((()=>{const e=t.get("sessionState"),r=t.get("timestamp");t._initTimestamp!==r&&(t.set("timestamp",r),"active"!==e&&t.set("sessionState","active",o));const a=1e3*Math.floor((Date.now()-r)/1e3),g=t.get("autoExtend"),l=a>=i,c=a>=i-n,d=a>=s;l&&"expired"!==e?t.expire():g&&c?t.extend():!g&&d&&"warned"!==e&&t.warn();const p=t._registered;for(const e in p)p[e](a,d,l)}),1e3)},_stopTimer(){e.clearInterval(this._intervalId)},destructor(){new e.EventHandle(this._eventHandlers).detach(),this._stopTimer()},expire(){this.set("sessionState","expired",o)},extend(){this.set("sessionState","active",o)},initializer(){const t=this;t._cookieKey="LFR_SESSION_STATE_"+themeDisplay.getRealUserId(),t._cookieOptions={path:"/",secure:e.UA.secure},t._registered={},t.set("timestamp"),t._initEvents(),t._startTimer(),Liferay.fire("sessionInitialized",{session:t})},registerInterval(i){let n;const s=this._registered;return t.isFunction(i)&&(n=e.stamp(i),s[n]=i),n},resetInterval(){this._stopTimer(),this._startTimer()},unregisterInterval(e){const t=this._registered;return Object.prototype.hasOwnProperty.call(t,e)&&delete t[e],e},warn(){this.set("sessionState","warned",o)}}});c.SRC=a;const d=e.Component.create({ATTRS:{openToast:{validator:t.isFunction},pageTitle:{value:s.title}},EXTENDS:e.Plugin.Base,NAME:"liferaysessiondisplay",NS:"display",prototype:{_afterDefActivatedFn(){this._uiSetActivated()},_afterDefExpiredFn(){const e=this;e._host.unregisterInterval(e._intervalId),e._uiSetExpired()},_beforeHostWarned(){const e=this,i=e._host,n=i.get("sessionLength"),s=i.get("timestamp"),r=i.get("warningLength");let a=n;t.toInt(s)&&(a=1e3*Math.floor((Date.now()-s)/1e3));let o=n-a;o>r&&(o=r),e._getBanner();const l=document.querySelector("#".concat(g," .countdown-timer"));e._uiSetRemainingTime(o,l),e._intervalId=i.registerInterval(((t,i,s)=>{i?s||e._uiSetRemainingTime(n-t,l):e._uiSetActivated()}))},_destroyBanner(){const e=document.getElementById(g),t=null==e?void 0:e.parentElement;Liferay.destroyComponent(g),t&&t.remove(),this._banner=!1},_formatNumber:e=>t.String.padNumber(Math.floor(e),2),_formatTime(e){const n=this;return e=Number(e),t.isNumber(e)&&e>0?(e/=1e3,i[0]=n._formatNumber(e/3600),e%=3600,i[1]=n._formatNumber(e/60),e%=60,i[2]=n._formatNumber(e),e=i.join(":")):e=0,e},_getBanner(){const e=this;let t=e._banner;if(!t){const i=e.get("openToast"),n={onClick({event:t}){t.target.classList.contains("alert-link")&&e._host.extend()},renderData:{componentId:g},toastProps:{autoClose:!1,id:g,role:"alert"}};i(_objectSpread({message:e._warningText,type:"warning"},n));t=_objectSpread({open(t){e._destroyBanner(),i(_objectSpread(_objectSpread({},t),n))}},Liferay.component(g)),e._banner=t}return t},_onHostSessionStateChange(e){const t=this;"warned"===e.newVal&&t._beforeHostWarned(e)},_uiSetActivated(){const e=this;s.title=e.reset("pageTitle").get("pageTitle"),e._host.unregisterInterval(e._intervalId),e._banner&&e._destroyBanner()},_uiSetExpired(){const e=this;e._getBanner().open({message:e._expiredText,title:'Peligro',type:"danger"}),s.title=e.get("pageTitle")},_uiSetRemainingTime(e,i){const n=this;if(e=n._formatTime(e),!n._alertClosed){const t=i.closest('div[role="alert"]');t&&(t.removeAttribute("role"),n._alert=t),i.innerHTML=e}s.title=t.sub('La\x20sesión\x20expira\x20en\x20\x7b0\x7d\x2e',[e])+" | "+n.get("pageTitle")},destructor(){const e=this;e._banner&&e._destroyBanner()},initializer(){const e=this,i=e.get("host");Liferay.Util.getTop()===n.win?(e._host=i,e._toggleText={hide:'Ocultar',show:'Mostrar'},e._expiredText='La\x20sesión\x20expiró\x20por\x20inactividad\x2e\x20Guarde\x20los\x20datos\x20que\x20introdujo\x20antes\x20de\x20actualizar\x20la\x20página\x2e',e._warningText='La\x20sesión\x20expirará\x20en\x20\x7b0\x7d\x20por\x20inactividad\x2e\x20Para\x20prolongar\x20la\x20sesión\x20otros\x20\x7b1\x7d\x20minuto\x28s\x29\x2c\x20presione\x20el\x20botón\x20\x3cem\x3eExtender\x3c\x2fem\x3e\x2e\x20\x7b2\x7d',e._warningText=t.sub(e._warningText,['{0}',i.get("sessionLength")/6e4,''+'Extender'+""]),i.on("sessionStateChange",e._onHostSessionStateChange,e),e.afterHostMethod("_defActivatedFn",e._afterDefActivatedFn),e.afterHostMethod("_defExpiredFn",e._afterDefExpiredFn)):i.unplug(e)}}});Liferay.SessionBase=c,Liferay.SessionDisplay=d}),"",{requires:["aui-base","aui-component","aui-timer","cookie","plugin"]});